package com.kaifamiao.enca;

public class Triangle {
    // 用私有实例变量表示三角形的三边长
    private int first;
    private int second;
    private int third;

    // 在全参构造中初始化实例变量
    public Triangle(int first, int second, int third) {
        // 调用自己的检查方法检查三边长是否构成三角形
        if( this.check( first, second, third ) ) {
            this.first = first;
            this.second = second;
            this.third = third;
            return;
        }
        throw new IllegalArgumentException("三边长不能构成三角形");
    }

    /**
     * 检查三个边长是否可以构成三角形
     * @param a 第一边长
     * @param b 第二边长
     * @param c 第三边长
     * @return 仅当三边长可以构成一个三角形时返回 true ; 否则返回 false
     */
    private boolean check(int a, int b, int c) {
        if( a + b <= c ) {
            return false;
        }
        if( a + c <= b ) {
            return false;
        }
        if( b + c <= a ) {
            return false;
        }
        return true;
    }

    // 求三角形周长
    public int perimeter(){
        return first + second + third;
    }

    // 求三角形面积
    public double area(){
        // 调用自己的方法求三角形周长后再除以二
        double p = this.perimeter() / 2.0 ;
        double x = p*(p-first) * (p-second) * (p-third);
        double a = Math.sqrt(x);
        return a ;
    }

    // 求三角形的类型
    public String type(){
        // 判断当前的三角形是什么类型的三角形
        // 等边三角形、等腰三角形、锐角三角形、直角三角形、钝角三角形
        return null;
    }

    public int getFirst() {
        return first;
    }

    public int getSecond() {
        return second;
    }

    public int getThird() {
        return third;
    }
}
